/**
 *
 */
package com.tongzhan.utils;

import org.apache.commons.lang3.StringUtils;

import java.util.List;
import java.util.regex.Matcher;
import java.util.regex.Pattern;

/**
 * @author mintonzhang 2018年8月15日
 */
public class StringUtilPlus extends StringUtils {

    /**
     * 检查是否缺少参数
     *
     * @param param 需要检查的为空的参数们
     * @return true 缺少 false 不缺少
     * @date 2018年6月11日
     * 
     */
    public static boolean checkMissParam(Object... param) {
        if (param == null || param.length == 0) {
            return false;
        }
        for (Object object : param) {
            if (object == null || "".equals(object) || object.toString().length() == 0) {
                return true;
            }
        }
        return false;
    }

    /**
     * 是否包含汉字
     * @param str
     * @return
     */
    public static boolean isContainChinese(String str) {
        if (str==null||str.equals("")) return false;
        Pattern p = Pattern.compile("[\u4e00-\u9fa5]");
        Matcher m = p.matcher(str);
        if (m.find()) {
            return true;
        }
        return false;
    }
    /**
     * 是否全部为空
     *
     * @param param 需要检查的为空的参数们
     * @return true 缺少 false 不缺少
     * @date 2018年6月11日
     * 
     */
    public static boolean checkAllNull(Object... param) {
    	if (param == null || param.length == 0) {
    		return false;
    	}
    	for (Object object : param) {
    		if (object != null && !"".equals(object) && object.toString().length() >= 0) {
    			return true;
    		}
    	}
    	return false;
    }

    /**
     * 判断是否为空
     *
     * @param object
     * @return
     * @date 2018年6月11日
     * 
     */
    @SuppressWarnings("unchecked")
    public static <T> T checkIsNull(Object object, T def) {
        try {
            if (object instanceof List) {
                Integer size = ((List<?>) object).size();
                return size == 0 ? def : (T) size;
            }
            if (object instanceof Number) {
                return (T) object;
            }
            if (object == null || StringUtils.isBlank((CharSequence) object)) {
                return def;
            }
            return (T) object;
        } catch (Exception e) {
            e.printStackTrace();
            return def;
        }

    }

    /**
     * 去除字符串空格
     *
     * @param str
     * @return 2018年8月15日
     * 
     */
    public static String replaceBlank(String str) {
        if (str != null) {
            Pattern p = Pattern.compile("\\s*|\t|\r|\n");
            Matcher m = p.matcher(str);
            return m.replaceAll("");
        }
        return "";
    }
}
